/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.eventos.bc;

import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.cip.esymons.colegiatura.bc.PreinscripcionFacadeLocal;
import org.cip.esymons.colegiatura.be.Preinscripcion;
import org.cip.esymons.eventos.be.Curso;
import org.cip.esymons.eventos.be.Preevento;

/**
 *
 * @author Lizardo Rios
 */
public class CursoDelegate {

    CursoFacadeLocal local;
    PreinscripcionFacadeLocal localColegiatura;

    public CursoDelegate() {
        local = lookupCursoFacade();
        localColegiatura = lookupPreinscripcionFacade();
    }

    public void create(Curso curso) {
        local.create(curso);
    }

    public void edit(Curso curso) {
        local.edit(curso);
    }

    public void remove(Curso curso) {
        local.remove(curso);
    }

    public Curso find(Object id) {
        return local.find(id);
    }

    public List<Curso> findAll() {
        return local.findAll();
    }

    public List<CursoAdapter> listarCursos() {
        return local.listarCursos();
    }

    public List<Preevento> listarCursosAMatricular() throws Exception {
        return local.listarCursosAMatricular();
    }

    public List<Curso> listarVacantes() {
        return local.listarVacantes();
    }

     public List<Preevento> listarCursosEnProceso() {
        return local.listarCursosEnProceso();
    }

    public Double getNotaMinima(Integer curCodigo) throws Exception {
        return local.getNotaMinima(curCodigo);
    }

    private CursoFacadeLocal lookupCursoFacade() {
        try {
            Context c = new InitialContext();
            return (CursoFacadeLocal) c.lookup("java:comp/env/CursoFacade");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }

    public List<Preinscripcion> listaPorFechasYConDireccion(Date fechaIni,Date fechaFin) throws Exception {
        return localColegiatura.listaPorFechasYConDireccion(fechaIni, fechaFin);
    }

    private PreinscripcionFacadeLocal lookupPreinscripcionFacade() {
        try {
            Context c = new InitialContext();
            return (PreinscripcionFacadeLocal) c.lookup("java:comp/env/PreinscripcionFacade");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }




}
